Exponentiation is a mathematical operation that involves taking a power of a base number to a specified argument. For example, if the base number is represented by B, then performing an exponentiation operation on it with an argument X would involve computing the number Y such that Y=BX. Both the base number B, and the argument Y, can take on values with integer and fractional parts. For a digital implementation, a binary base typically is used (i.e., B=2). Also, a given argument X for any other non-binary base can be transformed into an equivalent binary-base argument by multiplying X with the pre-computed constant log2(B), i.e.,Y=BX=2Z, where Z=X·log2(B).
If Z consists of an integer and fractional part, it can be written as Z=I.F, where I represents the integer part and F represents the fractional part. In a binary-base fixed-point notation, the fractional part (.F) equivalently can be written as f=(F/2N), where N is the number of significant bits used to represent the fractional portion of the number Z. Using this representation:Y=BX=2Xlog2(B)=2I.F=2I·2f,where f is the fractional part of the number Z in binary format, and is always 0≦f<1.0.
The exponentiation of the integer portion of the argument I to the binary base can be digitally implemented by simply shifting the binary base left (for positive I) or right (for negative I) by I number of bit positions. The digital implementation for the exponentiation of the fractional portion of the argument, f, is not trivial.
In a traditional digital implementation of the exponentiation of a binary base by a fractional argument, f, a look-up table is used to map the corresponding number F (the bit-string representation of f) into the correct value of 2f, in the binary representation format being used. Typically, a look-up table with 2N entries is used, where N is the number of bits used to represent the fractional part of the argument in binary format. For example, if the fractional part of the argument were represented using 16 bits, the total number of entries in the look-up table would be 216=65,536 words (64 KWords). Alternatively, another common method to implement 2f is to digitally compute (1+f), which is a first-order approximation to the correct value, having an irreducible maximum approximation error of approximately 0.5 dB.
Clearly, both solutions are deficient, albeit for different reasons. Therefore, there exists a need for new digital implementations of fractional exponentiation, e.g., which do not require the use of a look-up table and/or results in a more precise approximation value.